﻿using Basic.HrModel.DB;
using Basic.HrModel.Msg;
using Basic.HrRemoteModel.Msg.Model;
using WeDonekRpc.Model;

namespace Basic.HrDAL
{
    public interface IEmpMsgListDAL : IBasicDAL<DBEmpMsgList, long>
    {
        Result[] Query<Result> ( MsgQuery query, IBasicPage paging, out int count ) where Result : class;
        Result[] Gets<Result> ( MsgGetArg param ) where Result : class, new();
        void Adds ( MsgAdd add );

        void Adds ( MsgAdd[] add );
        void SetAlreadyDo ( long id );

        void SetAlreadyRead ( long id );

        void SetAlreadyRead ( long[] ids );

        long[] GetWaitToVoidMsgId ( ToVoidItem[] items );

        void ToVoidMsg ( long[] msgId );

        void ToVoidMsg ( long msgId );

        long[] GetMsgId ( MsgItem[] items );
        void Save ( BatchOpt opt );
        Dictionary<string, int> GetMsgTotal ( MsgGetArg arg );
    }
}